package org.example.demo1.DAO;

import org.example.demo1.Entity.Novel;
import org.example.demo1.Entity.UserNovel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserNovelDao {
    // 获取用户收藏的小说列表
    List<Novel> getUserCollections(Integer userId);
    
    // 获取用户特定分组的小说列表
    List<Novel> getUserCollectionsByGroup(Integer userId, String groupName);
    
    // 检查用户是否已收藏某小说
    UserNovel checkCollection(@Param("userId") Integer userId, @Param("novelId") Integer novelId);
    
    // 添加小说到用户收藏
    int addCollection(@Param("userId") Integer userId, @Param("novelId") Integer novelId);
    
    // 添加小说到用户收藏并指定分组
    int addCollectionWithGroup(@Param("userId") Integer userId, @Param("novelId") Integer novelId, @Param("groupName") String groupName);
    
    // 从用户收藏中移除小说
    int removeCollection(@Param("userId") Integer userId, @Param("novelId") Integer novelId);
    
    // 更新收藏的分组名称
    int updateCollectionGroup(Integer userId, Integer novelId, String groupName);
    
    // 获取用户的所有分组名称
    List<String> getUserGroups(Integer userId);
    
    // 查询指定 id 对应的书籍信息和阅读进度
    Novel getNovelInfoById(@Param("userId") Integer userId, @Param("novelId") Integer novelId);


}